home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stut_src / spec_pu.h < prev    next >
C/C++ Source or Header  |  1995-07-10  |  6KB  |  214 lines

  1. /*
  2.  * special.h
  3.  *
  4.  * Purpose:
  5.  * --------
  6.  * Macros & definitions personnelles a usage general
  7.  *
  8.  * Suggest:
  9.  * --------
  10.  * Verifier repartition des modules                                     
  11.  */
  12.  
  13. /*
  14.  * V‚rifie si les pr‚sentes d‚finitions ont d‚ja ‚t‚ faites:
  15.  */
  16. #if  !defined( _SPECIAL_H_ )
  17. #define _SPECIAL_H_
  18.  
  19. #include    <time.h>
  20. #include    <aes.h>
  21.  
  22. /*
  23.  * ------------------------------ Constantes ------------------------------
  24.  */
  25.  
  26.     /*
  27.      * Codes ASCII: 
  28.      */
  29.     #define    NUL        0x00
  30.     #define    BS            0x08
  31.     #define    TAB        0x09
  32.     #define    LF            0x0A
  33.     #define    CR            0x0D
  34.     #define    ESC        0x1B
  35.     /*
  36.      * Codes ASCII ‚tendus PC8    
  37.      */
  38.     #define    PC8_DEMI             171
  39.     #define    PC8_QUART            172
  40.     #define    PC8_BETA                225
  41.     #define    PC8_PLUSMOINS        241
  42.     #define    PC8_DIVISE            246
  43.     #define    PC8_DEGRE            248
  44.     
  45.     #define    PC8_INVALID            '_'                /* Lorsqu'on a pas pu trouver d'‚quivalent */
  46.     
  47.     /*
  48.      * Codes ASCII de caractŠres sp‚ciaux: 
  49.      */
  50.     #define    ALT_SIGN                0x07                /* Repr‚sente touche alt */
  51.     #define    CHECK                    0x08
  52.     #define    CEMPTY                178                /* Ensemble vide */
  53.  
  54.  
  55.     /* 
  56.      * Divers:
  57.      */
  58.     #define    OK1            1
  59.     #define    YES1            1            /* = SELECTED, important dans CONFIG.C */
  60.     #define    FALSE            0
  61.     #define    FALSE0        0
  62.     #define    NO0            0
  63.     #define    IMPOSS0        0
  64.     #define    WRONG0        0
  65.     #define  SUCCESS0        0
  66.     #define    RAS0            0            /* Rien … signaler: SUCCESS0 */
  67.     #define    FAILURE_1    -1
  68.     #define    TRUE            -1
  69.     #define    TRUE_1        -1
  70.     #define    ERROR_1        -1
  71.     #define    CORRUPT_1    -1
  72.     #define    CHANGE_2        -2
  73.     #define    ABORT_2        -2
  74.  
  75.     #define    ROOT        0
  76.     #define    NIL_1        -1
  77.     #define    NIL        -1
  78.  
  79.     #define    PARITY    0xFFFFFFFELU    /* Pour fixer une longeur paire */
  80.  
  81.  
  82. /*
  83.  * Etat de sauvegarde des donn‚es:
  84.  *
  85.  * 06.08.94: fplanque: Created
  86.  */
  87. typedef
  88.     enum
  89.     {
  90.         SSTATE_EMPTY,
  91.         SSTATE_MODIFIED,
  92.         SSTATE_SAVED
  93.     }
  94.     SSTATE;
  95.  
  96. /*
  97.  * -------------------------------- Macros -----------------------------
  98.  */
  99.  
  100. #if    ANTI_WARNING
  101. #define    FAKE_USE( x )    (x=x)
  102. #else
  103. #define    FAKE_USE( x )
  104. #endif
  105.  
  106. #define    MIN( a, b )             ( a<b?a:b )
  107. #define    MAX( a, b )             ( a<b?b:a )
  108.  
  109. /*
  110.  * ------------------------------ Types ---------------------------
  111.  */
  112.  
  113. typedef
  114.     union
  115.     {
  116.         int             value;
  117.         struct
  118.         {
  119.             unsigned framecol    :    4;
  120.             unsigned textcol     :    4;
  121.             unsigned textmode    :    1;
  122.             unsigned fillpattern :    3;
  123.             unsigned interiorcol :    4;
  124.         }                       bf;
  125.     }
  126.     TE_COLOR;
  127.  
  128.  
  129. /*
  130.  * -------------------- MEMBRES PUBLICS -----------------------------
  131.  */
  132.  
  133.  
  134.     extern    char    *    G_empty_string;            /* Chaine vide */
  135.     extern    char    *    G_crlf;                        /* Retour … la ligne */
  136.     extern    void    *    G_null;
  137.  
  138.     extern    char    *    G_tmp_buffer;                /* Peut contenir un texte long de 511 signes + '\0' */
  139.     extern    char    *    G_2nd_buffer;                /* 2Šme buffer */
  140.  
  141.  
  142.  
  143. /*
  144.  * -------------------- METHODES PUBLIQUES -----------------------------
  145.  */
  146.  
  147. void    Special_Init( void );
  148. extern    int    min(            /* Out: Minimum des deux INT */
  149.                         int a,    /* In:  INT #1 */
  150.                         int b);    /* In:  INT #2 */
  151. extern    long    l_min(        /* Out: Minimum des deux LONG INT */
  152.                         long a,    /* In:  LONG INT #1 */
  153.                         long b);    /* In:  LONG INT #2 */
  154. extern    int    max(            /* Out: Maximum des deux INT */
  155.                         int a,    /* In:  INT #1 */
  156.                         int b);    /* In:  INT #2 */
  157. extern    long    l_max(        /* Out: Maximum des deux LONG INT */
  158.                         long a,    /* In:  LONG INT #1 */
  159.                         long b);    /* In:  LONG INT #2 */
  160. extern    int    rcintersect(         /* Out: !=0 s'il y a eu intersection */
  161.                         int area_x,    /* In: Premier rectangle */
  162.                         int area_y, 
  163.                         int area_w, 
  164.                         int area_h,
  165.                         int *box_x,     /* In/Out: Deuxième rectangle/Rectangle intersection */
  166.                         int *box_y, 
  167.                         int *box_w, 
  168.                         int *box_h );
  169. extern    int    grcintersect(        /* Out: !=0 s'il y a eu intersection */
  170.                         GRECT *area,   /* In: Premier rectangle */
  171.                         GRECT *box );  /* In/Out: Deuxième rectangle/Rectangle intersection */
  172. extern    void    grecttoarray( 
  173.                         GRECT *rect,      /* In: GRECT à transcrire */
  174.                         int *array );    /* Buffer: Tableau dans lequel il faut écrire */
  175. extern    void    ping ( void );
  176. int    Sstrcmp(
  177.             const    char * cpsz_1,
  178.             const    char * cpsz_2,
  179.             char             c_spec );    /* In: CaractŠre de fin */
  180. extern    char    *strBchr(
  181.                         char *string,     /* In: Chaîne dans laquelle il faut chercher */
  182.                         char chr );        /* In: CaractŠre … rechercher */
  183.  
  184.  
  185. int    ctrl_IntRange(                /* Out: Valeur ds intervale */
  186.             int    n_Value,            /* In:  Valeur d'origine */
  187.             int    n_Minimum,        /* In:  Valeur Minimale autoris‚e */
  188.             int    n_Maximum );    /* In:  Valeur Maximale autoris‚e */
  189.  
  190. void    wait( clock_t    delay );
  191.  
  192. extern    void    replace_extension(
  193.                         char *             pBsz_FileName,        /* In: Buffer contenant Nom sur lequel on opŠre */
  194.                         const char *    cpsz_Extension ); /* In: Extension … utiliser */
  195.  
  196. extern    char * dup_String(                         /* Out: Copie */
  197.                         const char * psz_Src );        /* In: Source */
  198. extern    void    free_String(
  199.                         char    * pString );    /* In: ptr sur chaine … effacer */
  200. size_t    len_String(
  201.                 const char    * pString );    /* In: ptr sur chaine … effacer */
  202. void    copy_String(
  203.                 char            * pString_Dest,        /* In: ptr sur buffer destination */
  204.                 const char    * cpString_Srce );    /* In: ptr sur chaine … effacer */
  205. extern    void    freeOld_dupString(
  206.                         char        * * ppsz_Dest,        /* In/Out: Adr du Ptr destination */
  207.                         const char * psz_Srce );    /* In: Chaine … dupliquer */
  208. extern char * realloc_String(                /* Out: Nouvelle chaine */
  209.                     const char * pMsz_src,    /* In:  Chaine source */
  210.                     size_t         size_new );    /* In:  Nouvelle longueur */
  211.  
  212.  
  213.  
  214. #endif    /* #if  !defined( _SPECIAL_H_ ) */